import request from '@/config/axios'

// OA 加班申请 VO
export interface OaOvertimeApplyVO {
  id: number // 加班申请表主键
  userId: number // 申请人的用户编号
  overtimeType: number // 加班类型：1工作日加班 2休息日加班 3节假日加班
  startTime: Date // 开始时间
  endTime: Date // 结束时间
  duration: number // 加班时长(小时)
  compensateType: number // 补偿方式：1调休 2加班费
  reason: string // 加班原因
  status: number // 审批结果
  processInstanceId: string // 流程实例的编号
}

// OA 加班申请 API
export const OaOvertimeApplyApi = {
  // 查询OA 加班申请分页
  getOaOvertimeApplyPage: async (params: any) => {
    return await request.get({ url: `/bpm/oa-overtime-apply/page`, params })
  },

  // 查询OA 加班申请详情
  getOaOvertimeApply: async (id: number) => {
    return await request.get({ url: `/bpm/oa-overtime-apply/get?id=` + id })
  },

  // 新增OA 加班申请
  createOaOvertimeApply: async (data: OaOvertimeApplyVO) => {
    return await request.post({ url: `/bpm/oa-overtime-apply/create`, data })
  },

  // 修改OA 加班申请
  updateOaOvertimeApply: async (data: OaOvertimeApplyVO) => {
    return await request.put({ url: `/bpm/oa-overtime-apply/update`, data })
  },

  // 删除OA 加班申请
  deleteOaOvertimeApply: async (id: number) => {
    return await request.delete({ url: `/bpm/oa-overtime-apply/delete?id=` + id })
  },

  // 导出OA 加班申请 Excel
  exportOaOvertimeApply: async (params) => {
    return await request.download({ url: `/bpm/oa-overtime-apply/export-excel`, params })
  },
}